package com.css.dzj.dzjap.modules.force.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.util.Date;
import java.util.Objects;

@Entity
@Table(name = "AP_JGXX_FORCE", schema = "DZJAP", catalog = "")
public class ApJgxxForceEntity {
    //主键Id
    private String forceId;
    //记录唯一标识
    private String recordUniqueIdentity;
    //监管事项目录编码
    private String superviseId;
    //强制行为名称
    private String forceActionName;
    //强制行为编号
    private String forceActionCode;
    //实施机构
    private String implementInstitution;
    //实施机构编码
    private String implementInstitutionCode;
    //监管对象
    private String superviseObject;
    //检查行为编号
    private String checkActionCode;
    //行政相对人（单位/个人）
    private String administrativeCp;
    //行政相对人性质
    private String administrativeCpNa;
    //行政相对人证件类型
    private String administrativeCpCeType;
    //行政相对人(单位/个人)编码
    private String administrativeCpUiCode;
    //注册地址
    private String addressRegistered;
    //经营地址
    private String addressOperating;
    //行政区划代码
    private String areaNumber;
    //违法事实
    private String illEgalFact;
    //强制依据
    private String forceAccord;
    //强制决定书号
    private String mandatoryDecisionNumber;
    //行政强制种类
    private String forceType;
    //强制措施类型
    private String coerciveMeasureType;
    //强制执行类型
    private String forceExecutionType;
    //强制结果
    private String mandatoryDecisionPatify;
    //实施强制措施的起始时间
    private Date mandatoryDecisionSevDate;
    //强制措施延长期限
    private String forceExtendDate;
    //实施强制措施的结束时间
    private Date endDate;
    //报送时间
    private Date submittedDate;
    //报送人员
    private String submittedPersonnel;
    //插入时间
    private Date insertDate;
    //来源
    private String inFrom;
    //批次号
    private String batchNumber;
    //同步类型
    private String type;
    //数据来源
    private String dataForm;
    //逻辑删除字段
    private String delFlag;
    //创建时间
    private Date creatTime;
    @Id
    @Column(name = "FORCE_ID")
    @GeneratedValue(generator = "SnowflakeId")
    @GenericGenerator(name = "SnowflakeId",strategy = "com.css.dzj.dzjap.common.util.SnowflakeId")
    public String getForceId() {
        return forceId;
    }

    public void setForceId(String forceId) {
        this.forceId = forceId;
    }

    @Basic
    @Column(name = "RECORD_UNIQUE_IDENTITY")
    public String getRecordUniqueIdentity() {
        return recordUniqueIdentity;
    }

    public void setRecordUniqueIdentity(String recordUniqueIdentity) {
        this.recordUniqueIdentity = recordUniqueIdentity;
    }

    @Basic
    @Column(name = "SUPERVISE_ID")
    public String getSuperviseId() {
        return superviseId;
    }

    public void setSuperviseId(String superviseId) {
        this.superviseId = superviseId;
    }

    @Basic
    @Column(name = "FORCE_ACTION_NAME")
    public String getForceActionName() {
        return forceActionName;
    }

    public void setForceActionName(String forceActionName) {
        this.forceActionName = forceActionName;
    }

    @Basic
    @Column(name = "FORCE_ACTION_CODE")
    public String getForceActionCode() {
        return forceActionCode;
    }

    public void setForceActionCode(String forceActionCode) {
        this.forceActionCode = forceActionCode;
    }

    @Basic
    @Column(name = "IMPLEMENT_INSTITUTION")
    public String getImplementInstitution() {
        return implementInstitution;
    }

    public void setImplementInstitution(String implementInstitution) {
        this.implementInstitution = implementInstitution;
    }

    @Basic
    @Column(name = "IMPLEMENT_INSTITUTION_CODE")
    public String getImplementInstitutionCode() {
        return implementInstitutionCode;
    }

    public void setImplementInstitutionCode(String implementInstitutionCode) {
        this.implementInstitutionCode = implementInstitutionCode;
    }

    @Basic
    @Column(name = "SUPERVISE_OBJECT")
    public String getSuperviseObject() {
        return superviseObject;
    }

    public void setSuperviseObject(String superviseObject) {
        this.superviseObject = superviseObject;
    }

    @Basic
    @Column(name = "CHECK_ACTION_CODE")
    public String getCheckActionCode() {
        return checkActionCode;
    }

    public void setCheckActionCode(String checkActionCode) {
        this.checkActionCode = checkActionCode;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP")
    public String getAdministrativeCp() {
        return administrativeCp;
    }

    public void setAdministrativeCp(String administrativeCp) {
        this.administrativeCp = administrativeCp;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP_NA")
    public String getAdministrativeCpNa() {
        return administrativeCpNa;
    }

    public void setAdministrativeCpNa(String administrativeCpNa) {
        this.administrativeCpNa = administrativeCpNa;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP_CE_TYPE")
    public String getAdministrativeCpCeType() {
        return administrativeCpCeType;
    }

    public void setAdministrativeCpCeType(String administrativeCpCeType) {
        this.administrativeCpCeType = administrativeCpCeType;
    }

    @Basic
    @Column(name = "ADMINISTRATIVE_CP_UI_CODE")
    public String getAdministrativeCpUiCode() {
        return administrativeCpUiCode;
    }

    public void setAdministrativeCpUiCode(String administrativeCpUiCode) {
        this.administrativeCpUiCode = administrativeCpUiCode;
    }

    @Basic
    @Column(name = "ADDRESS_REGISTERED")
    public String getAddressRegistered() {
        return addressRegistered;
    }

    public void setAddressRegistered(String addressRegistered) {
        this.addressRegistered = addressRegistered;
    }

    @Basic
    @Column(name = "ADDRESS_OPERATING")
    public String getAddressOperating() {
        return addressOperating;
    }

    public void setAddressOperating(String addressOperating) {
        this.addressOperating = addressOperating;
    }

    @Basic
    @Column(name = "AREA_NUMBER")
    public String getAreaNumber() {
        return areaNumber;
    }

    public void setAreaNumber(String areaNumber) {
        this.areaNumber = areaNumber;
    }

    @Basic
    @Column(name = "IllEGAL_FACT")
    public String getIllEgalFact() {
        return illEgalFact;
    }

    public void setIllEgalFact(String illEgalFact) {
        this.illEgalFact = illEgalFact;
    }

    @Basic
    @Column(name = "FORCE_ACCORD")
    public String getForceAccord() {
        return forceAccord;
    }

    public void setForceAccord(String forceAccord) {
        this.forceAccord = forceAccord;
    }

    @Basic
    @Column(name = "MANDATORY_DECISION_NUMBER")
    public String getMandatoryDecisionNumber() {
        return mandatoryDecisionNumber;
    }

    public void setMandatoryDecisionNumber(String mandatoryDecisionNumber) {
        this.mandatoryDecisionNumber = mandatoryDecisionNumber;
    }

    @Basic
    @Column(name = "FORCE_TYPE")
    public String getForceType() {
        return forceType;
    }

    public void setForceType(String forceType) {
        this.forceType = forceType;
    }

    @Basic
    @Column(name = "COERCIVE_MEASURE_TYPE")
    public String getCoerciveMeasureType() {
        return coerciveMeasureType;
    }

    public void setCoerciveMeasureType(String coerciveMeasureType) {
        this.coerciveMeasureType = coerciveMeasureType;
    }

    @Basic
    @Column(name = "FORCE_EXECUTION_TYPE")
    public String getForceExecutionType() {
        return forceExecutionType;
    }

    public void setForceExecutionType(String forceExecutionType) {
        this.forceExecutionType = forceExecutionType;
    }

    @Basic
    @Column(name = "MANDATORY_DECISION_PATIFY")
    public String getMandatoryDecisionPatify() {
        return mandatoryDecisionPatify;
    }

    public void setMandatoryDecisionPatify(String mandatoryDecisionPatify) {
        this.mandatoryDecisionPatify = mandatoryDecisionPatify;
    }

    @Basic
    @Column(name = "MANDATORY_DECISION_SEV_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getMandatoryDecisionSevDate() {
        return mandatoryDecisionSevDate;
    }

    public void setMandatoryDecisionSevDate(Date mandatoryDecisionSevDate) {
        this.mandatoryDecisionSevDate = mandatoryDecisionSevDate;
    }

    @Basic
    @Column(name = "FORCE_EXTEND_DATE")
    public String getForceExtendDate() {
        return forceExtendDate;
    }

    public void setForceExtendDate(String forceExtendDate) {
        this.forceExtendDate = forceExtendDate;
    }

    @Basic
    @Column(name = "END_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @Basic
    @Column(name = "SUBMITTED_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getSubmittedDate() {
        return submittedDate;
    }

    public void setSubmittedDate(Date submittedDate) {
        this.submittedDate = submittedDate;
    }

    @Basic
    @Column(name = "SUBMITTED_PERSONNEL")
    public String getSubmittedPersonnel() {
        return submittedPersonnel;
    }

    public void setSubmittedPersonnel(String submittedPersonnel) {
        this.submittedPersonnel = submittedPersonnel;
    }

    @Basic
    @Column(name = "INSERT_DATE")
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    public Date getInsertDate() {
        return insertDate;
    }

    public void setInsertDate(Date insertDate) {
        this.insertDate = insertDate;
    }

    @Basic
    @Column(name = "IN_FROM")
    public String getInFrom() {
        return inFrom;
    }

    public void setInFrom(String inFrom) {
        this.inFrom = inFrom;
    }

    @Basic
    @Column(name = "BATCH_NUMBER")
    public String getBatchNumber() {
        return batchNumber;
    }

    public void setBatchNumber(String batchNumber) {
        this.batchNumber = batchNumber;
    }

    @Basic
    @Column(name = "TYPE")
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    @Basic
    @Column(name = "DATA_FORM")
    public String getDataForm() {
        return dataForm;
    }

    public void setDataForm(String dataForm) {
        this.dataForm = dataForm;
    }

    @Basic
    @Column(name = "DEL_FLAG")
    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }
    @Basic
    @Column(name = "CREAT_TIME")
    public Date getCreatTime() {
        return creatTime;
    }

    public void setCreatTime(Date creatTime) {
        this.creatTime = creatTime;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) {return true;}
        if (o == null || getClass() != o.getClass()) {return false;}
        ApJgxxForceEntity that = (ApJgxxForceEntity) o;
        return Objects.equals(forceId, that.forceId) &&
                Objects.equals(recordUniqueIdentity, that.recordUniqueIdentity) &&
                Objects.equals(superviseId, that.superviseId) &&
                Objects.equals(forceActionName, that.forceActionName) &&
                Objects.equals(forceActionCode, that.forceActionCode) &&
                Objects.equals(implementInstitution, that.implementInstitution) &&
                Objects.equals(implementInstitutionCode, that.implementInstitutionCode) &&
                Objects.equals(superviseObject, that.superviseObject) &&
                Objects.equals(checkActionCode, that.checkActionCode) &&
                Objects.equals(administrativeCp, that.administrativeCp) &&
                Objects.equals(administrativeCpNa, that.administrativeCpNa) &&
                Objects.equals(administrativeCpCeType, that.administrativeCpCeType) &&
                Objects.equals(administrativeCpUiCode, that.administrativeCpUiCode) &&
                Objects.equals(addressRegistered, that.addressRegistered) &&
                Objects.equals(addressOperating, that.addressOperating) &&
                Objects.equals(areaNumber, that.areaNumber) &&
                Objects.equals(illEgalFact, that.illEgalFact) &&
                Objects.equals(forceAccord, that.forceAccord) &&
                Objects.equals(mandatoryDecisionNumber, that.mandatoryDecisionNumber) &&
                Objects.equals(forceType, that.forceType) &&
                Objects.equals(coerciveMeasureType, that.coerciveMeasureType) &&
                Objects.equals(forceExecutionType, that.forceExecutionType) &&
                Objects.equals(mandatoryDecisionPatify, that.mandatoryDecisionPatify) &&
                Objects.equals(mandatoryDecisionSevDate, that.mandatoryDecisionSevDate) &&
                Objects.equals(forceExtendDate, that.forceExtendDate) &&
                Objects.equals(endDate, that.endDate) &&
                Objects.equals(submittedDate, that.submittedDate) &&
                Objects.equals(submittedPersonnel, that.submittedPersonnel) &&
                Objects.equals(insertDate, that.insertDate) &&
                Objects.equals(inFrom, that.inFrom) &&
                Objects.equals(batchNumber, that.batchNumber) &&
                Objects.equals(type, that.type) &&
                Objects.equals(dataForm, that.dataForm) &&
                Objects.equals(delFlag, that.delFlag)&&
                Objects.equals(creatTime, that.creatTime);
    }

    @Override
    public int hashCode() {
        return Objects.hash(forceId, recordUniqueIdentity, superviseId, forceActionName, forceActionCode, implementInstitution, implementInstitutionCode, superviseObject, checkActionCode, administrativeCp, administrativeCpNa, administrativeCpCeType, administrativeCpUiCode, addressRegistered, addressOperating, areaNumber, illEgalFact, forceAccord, mandatoryDecisionNumber, forceType, coerciveMeasureType, forceExecutionType, mandatoryDecisionPatify, mandatoryDecisionSevDate, forceExtendDate, endDate, submittedDate, submittedPersonnel, insertDate, inFrom, batchNumber, type, dataForm, delFlag,creatTime);
    }
}
